package com.csap.framework.oauth2.type;

import cn.dev33.satoken.secure.SaSecureUtil;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.function.Function;

/**
 * @Author ycf
 * @Date 2021/9/4 10:08 下午
 * @Version 1.0
 */
@AllArgsConstructor
@Getter
public enum PasswordType {
    //加密方法
    md5("md5加密", SaSecureUtil::md5),
    sha1("sha1加密", SaSecureUtil::sha1),
    sha256("sha256加密", SaSecureUtil::sha256);
    /**
     * 名称
     */
    private final String name;
    /**
     * 加密逻辑
     */
    private final Function<String, String> sign;


    /**
     * 加密
     *
     * @param value 值
     * @return 加密结果
     */
    public String encry(String value) {
        return getSign().apply(value);
    }

}
